feat: feishu_doc Markdown 富文本写入 - #122
Conversation
write/append 操作不再写入纯文本 block,改为将 Markdown 内容解析为 对应的飞书 block 结构(heading/bullet/ordered/code/todo/divider 等), 文档渲染效果与原生编辑一致。 - 新增 markdown-to-blocks.ts 转换器,支持标题/列表/代码块/行内格式等 - 支持批量写入(每批 50 block),适配飞书 API 限制 - 39 个单元测试覆盖各种 Markdown 语法 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
Claude finished @lishuceo's task in 2m 2s —— View job PR Review: feat: feishu_doc Markdown 富文本写入
✅ Approved — clean implementation with minor suggestionsOverall assessment: This is a well-structured PR. The markdown-to-blocks converter is thorough, handles edge cases sensibly (tables → code block fallback, blockquotes → text fallback), and the test coverage with 39 new tests is solid. The integration into 2 minor suggestions posted as inline comments:
Things done well:
|
…locks 支持精确编辑他人文档,不再只能全量覆写: - update_block: 更新指定 block 的文本内容(支持 inline markdown) - insert_blocks: 在指定位置插入新 block(支持 markdown → 富文本) - delete_blocks: 删除指定 block(自动解析 parent + index) 推荐工作流: list_blocks → 找到 block_id → update/insert/delete 9 个新增测试覆盖三个操作的正常和异常路径 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
Claude finished @lishuceo's task in 1m 47s —— View job PR Review: feat: feishu_doc Markdown 富文本写入 (re-review after sync)
|
- insert_blocks 多批次写入时 index 逐批递增,修复乱序 bug - 所有 API 调用 (batchUpdate/create/batchDelete) 增加 resp.code 校验 - update_block 描述明确仅支持行内 Markdown - index 参数增加 int().min(0) 验证 - 新增 5 个测试覆盖 API 错误传播和多批次 index 递增 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
Claude finished @lishuceo's task in 1m 25s —— View job PR Review: feat: feishu_doc Markdown 富文本写入 (re-review after sync)
|
…e-encoding - 未闭合代码块 fence 不再越界跳过额外行 - 移除 encodeURI() 避免已编码 URL 被双重编码 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
Claude finished @lishuceo's task in 55s —— View job PR Review: feat: feishu_doc Markdown 富文本写入 (re-review after fixes)
✅ Approved — all previous issues fixedPrevious issues (3 resolved):
No new issues found. The latest commit cleanly addresses both remaining warnings. Code looks good to merge. |
* feat: feishu_doc write/append 支持 Markdown → 飞书富文本 Block 自动转换 write/append 操作不再写入纯文本 block,改为将 Markdown 内容解析为 对应的飞书 block 结构(heading/bullet/ordered/code/todo/divider 等), 文档渲染效果与原生编辑一致。 - 新增 markdown-to-blocks.ts 转换器,支持标题/列表/代码块/行内格式等 - 支持批量写入(每批 50 block),适配飞书 API 限制 - 39 个单元测试覆盖各种 Markdown 语法 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat: feishu_doc 新增 block 级编辑操作 — update_block/insert_blocks/delete_blocks 支持精确编辑他人文档,不再只能全量覆写: - update_block: 更新指定 block 的文本内容(支持 inline markdown) - insert_blocks: 在指定位置插入新 block(支持 markdown → 富文本) - delete_blocks: 删除指定 block(自动解析 parent + index) 推荐工作流: list_blocks → 找到 block_id → update/insert/delete 9 个新增测试覆盖三个操作的正常和异常路径 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: feishu_doc API 响应校验 + insert_blocks 多批次 index 递增 - insert_blocks 多批次写入时 index 逐批递增,修复乱序 bug - 所有 API 调用 (batchUpdate/create/batchDelete) 增加 resp.code 校验 - update_block 描述明确仅支持行内 Markdown - index 参数增加 int().min(0) 验证 - 新增 5 个测试覆盖 API 错误传播和多批次 index 递增 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: address PR review feedback — unclosed fence guard + remove double-encoding - 未闭合代码块 fence 不再越界跳过额外行 - 移除 encodeURI() 避免已编码 URL 被双重编码 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Summary
feishu_doc工具的 write/append 操作升级为支持 Markdown 自动转换为飞书富文本 Block# 标题- 列表等 markdown 语法在飞书文档中显示为字面字符,现在会正确渲染为标题、列表、代码块等格式markdown-to-blocks.ts转换器,支持:heading 1-6、bullet/ordered list、fenced code block(含语言识别)、todo checkbox、divider、inline formatting(bold/italic/code/link/strikethrough)Test plan
npx vitest run— 全部测试通过(含 39 个新增 markdown-to-blocks 测试 + 10 个更新的 doc 测试)npx tsc --noEmit— 类型检查通过npx eslint src/— 0 errors🤖 Generated with Claude Code